Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Java-Hamster-Modell</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Java-Hamster-Modell"> <link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Java-Hamster-Modell rootpage-Java-Hamster-Modell skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Java-Hamster-Modell</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr">

<p>Das <b>Java-Hamster-Modell</b> gehört zu den <a href="Minisprache" title="Minisprache">Minisprachen</a>. Ziel des Modells ist es, Programmieranfängern das Erlernen grundlegender <a href="Programmierung" title="Programmierung">Programmierkonzepte</a> durch den Einsatz spielerischer Mittel zu erleichtern.
</p><p>Das Modell orientiert sich an der <a href="Programmiersprache" title="Programmiersprache">Programmiersprache</a> <a href="Java_(Programmiersprache)" title="Java (Programmiersprache)">Java</a>, ist aber grundsätzlich sprachunabhängig. Mit einem minimalen Satz an Befehlen sollen <i>Hamster-Programme</i> geschrieben werden, die einen virtuellen Hamster durch eine Landschaft steuern und ihn Aufgaben lösen lassen.
Grundlage des Modells ist der schrittweise Ablauf, der Programmierkonzepte aufeinander aufbauend einführt und diese durch zahlreiche Beispiele demonstriert.
</p><p>Eine spezielle Entwicklungsumgebung, der sogenannte Hamster-Simulator, hilft bei der Entwicklung und visualisiert den Ablauf der selbstgeschriebenen Hamster-Programme. Er wurde bewusst an bekannte Entwicklungsumgebungen für Java angelehnt und steht kostenlos zur Verfügung.
</p>

<div class="mw-heading mw-heading2"><h2 id="Imperative_Programmierung">Imperative Programmierung</h2></div>
<p>Im ersten Teil des Modells werden alle wesentlichen Konzepte der <a href="Imperative_Programmierung" title="Imperative Programmierung">imperativen Programmierung</a> schrittweise motiviert und eingeführt, insbesondere Anweisungen, Kontrollstrukturen, Prozeduren, Funktionen, Typen, Variablen, Ausdrücke, Parameter, Rekursion und der Programmentwurf.
</p><p>Mit einigen Grundbefehlen wie <code>linksUm()</code> und <code>nimm()</code> und Abfragen wie <code>vornFrei()</code>, <code>kornDa()</code> oder <code>maulLeer()</code> steuert man den Hamster in einer vorgegebenen Landschaft. Der Anwender lernt, aus diesen Grundelementen Prozeduren zusammenzustellen, die komplexere Befehle erlauben.
</p>
<div class="mw-heading mw-heading3"><h3 id="Befehlsübersicht"><span id="Befehls.C3.BCbersicht"></span>Befehlsübersicht</h3></div>
<table class="wikitable" width="30%">
<tbody><tr>
<th>Befehle
</th>
<th>Beschreibung
</th>
<th>Typ
</th></tr>
<tr>
<td>vor()
</td>
<td>Der Hamster geht genau 1 Feld weiter.
</td>
<td>void
</td></tr>
<tr>
<td>linksUm()
</td>
<td>Der Hamster dreht sich um 90° nach links.
</td>
<td>void
</td></tr>
<tr>
<td>nimm()
</td>
<td>Der Hamster nimmt ein Korn auf.
</td>
<td>void
</td></tr>
<tr>
<td>gib()
</td>
<td>Der Hamster legt ein Korn ab.
</td>
<td>void
</td></tr></tbody></table>
<table class="wikitable" width="30%">
<tbody><tr>
<th>Testbefehl
</th>
<th>Beschreibung
</th>
<th>Typ
</th></tr>
<tr>
<td>vornFrei()
</td>
<td>Liefert TRUE, falls der Hamster nicht vor einer Wand steht.
</td>
<td>boolean
</td></tr>
<tr>
<td>kornDa()
</td>
<td>Liefert TRUE, falls das Feld, auf dem der Hamster gerade steht, mindestens ein Korn enthält.
</td>
<td>boolean
</td></tr>
<tr>
<td>maulLeer()
</td>
<td>Liefert TRUE, falls der Hamster kein Korn im Maul hat.
</td>
<td>boolean
</td></tr></tbody></table>
<div class="mw-heading mw-heading2"><h2 id="Objektorientierte_Programmierung">Objektorientierte Programmierung</h2></div>
<p>Um das Konzept der <a href="Objektorientierte_Programmierung" title="Objektorientierte Programmierung">objektorientierten Programmierung</a> zu erklären, können nun mehrere Hamster erzeugt werden. Über <a href="Vererbung_(Programmierung)" title="Vererbung (Programmierung)">Vererbung</a> kann die normale Hamsterklasse erweitert werden.
</p><p>Zum Schluss lernen die Anwender, wie sie den Hamstern das Schach- oder Reversispielen beibringen können. So soll gezeigt werden, wie die zuvor vorgestellten Konzepte auf komplexe Probleme angewandt werden können.
</p>
<div class="mw-heading mw-heading2"><h2 id="Parallele_Programmierung">Parallele Programmierung</h2></div>
<p>Während die Hamster in der <a href="Objektorientierte_Programmierung" title="Objektorientierte Programmierung">objektorientierten Programmierung</a> explizit durch den Programmierer gesteuert werden, bilden sie in der <a href="Parallele_Programmierung" title="Parallele Programmierung">parallelen Programmierung</a> selbstständige Einheiten, die bei der Lösung von gestellten Aufgaben kooperieren und sich dabei koordinieren und synchronisieren müssen. Die Klasse Hamster, von der Hamster erzeugt werden, ist von der Klasse <a href="Thread_(Informatik)" title="Thread (Informatik)">Thread</a> abgeleitet, so dass bei der parallelen Programmierung mit dem Java-Hamster-Modell alle Eigenschaften und Funktionen der Thread-Programmierung genutzt werden können.
</p>
<div class="mw-heading mw-heading2"><h2 id="Siehe_auch">Siehe auch</h2></div>
<ul><li><a href="Bildungsorientierte_Programmiersprachen" class="mw-redirect" title="Bildungsorientierte Programmiersprachen">Bildungsorientierte Programmiersprachen</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Literatur">Literatur</h2></div>
<ul><li>Dietrich Boles: <cite style="font-style:italic">Programmieren spielend gelernt mit dem Java-Hamster-Modell</cite>. 5. Auflage. Springer Vieweg, 2013, ISBN 978-3-8348-0640-6.<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:Java-Hamster-Modell&amp;rft.au=Dietrich+Boles&amp;rft.btitle=Programmieren+spielend+gelernt+mit+dem+Java-Hamster-Modell&amp;rft.date=2013&amp;rft.edition=5.&amp;rft.genre=book&amp;rft.isbn=9783834806406&amp;rft.pub=Springer+Vieweg" style="display:none">&nbsp;</span></li>
<li>Dietrich Boles, Cornelia Boles: <cite style="font-style:italic">Objektorientierte Programmierung spielend gelernt mit dem Java-Hamster-Modell</cite>. 3. Auflage. Springer Vieweg, 2014, ISBN 978-3-658-04802-0.<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:Java-Hamster-Modell&amp;rft.au=Dietrich+Boles%2C+Cornelia+Boles&amp;rft.btitle=Objektorientierte+Programmierung+spielend+gelernt+mit+dem+Java-Hamster-Modell&amp;rft.date=2014&amp;rft.edition=3.&amp;rft.genre=book&amp;rft.isbn=9783658048020&amp;rft.pub=Springer+Vieweg" style="display:none">&nbsp;</span></li>
<li>Dietrich Boles: <cite style="font-style:italic">Parallele Programmierung spielend gelernt mit dem Java-Hamster-Modell. Programmierung mit Java-Threads</cite>. Vieweg+Teubner, 2008, ISBN 978-3-8351-0229-3.<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:Java-Hamster-Modell&amp;rft.au=Dietrich+Boles&amp;rft.btitle=Parallele+Programmierung+spielend+gelernt+mit+dem+Java-Hamster-Modell.+Programmierung+mit+Java-Threads&amp;rft.date=2008&amp;rft.genre=book&amp;rft.isbn=9783835102293&amp;rft.pub=Vieweg%2BTeubner" style="display:none">&nbsp;</span></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.java-hamster-modell.de/">www.java-hamster-modell.de</a></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-07-21" href="https://de.wikipedia.org/wiki/?title=Java-Hamster-Modell&amp;oldid=258175211">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>